package com.wash.shoes.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * @author ljg
 * @since 2024-09-16
 */
@ApiModel(value = "订单的物流")
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("os_order_transport")
public class OrderTransportPo extends Model<OrderTransportPo> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "id")
    private String id;

    @ApiModelProperty(value = "店铺的id")
    private String shopId;

    @ApiModelProperty(value = "订单的id")
    private String orderId;

    @ApiModelProperty(value = "取鞋/ 送鞋")
    private String type;

    @ApiModelProperty(value = "京东物流运单号")
    private String wayBillCode;

    @ApiModelProperty(value = "订单的编号")
    private String orderNo;

    //0 快递C2C	个人消费者寄快递服务，C端用户发给C端用户的快递服务
    //1	快递B2C	电商平台的商家（即京东物流的签约商家）发给C端用户的快递服务，或者企业发C端、B端，但重量（泡重比）小于30kg的业务
    //2	C2B	通常是指从C端揽收送往B端，一般简称C2B业务。例如：图书回收、洗护业务、电商平台客户退货发起的逆向业务等业务场景
    //4	快运B2C	电商平台的商家（即京东物流的签约商家）发给C端用户的快运服务，或者企业发C端、B端，但重量（泡重比）大于30kg的业务
    //5	快运C2C	个人消费者寄快运服务，C端用户发给C端用户的快运服务
    @ApiModelProperty(value = "下单来源 0-c2c 1-b2c 2-c2b 4-kyb2c 5- kyc2c")
    private String orderOrigin;

    @ApiModelProperty(value = "京东物流订单号")
    private String orderCode;

    @ApiModelProperty(value = "名字")
    private String sendName;

    @ApiModelProperty(value = "电话")
    private String sendMobile;

    @ApiModelProperty(value = "地址")
    private String sendFullAddress;

    @ApiModelProperty(value = "名字")
    private String receiverName;

    @ApiModelProperty(value = "电话")
    private String receiverMobile;

    @ApiModelProperty(value = "地址")
    private String receiverFullAddress;

    @ApiModelProperty(value = "收货地址")
    private String deliveryJson;

    @ApiModelProperty(value = "价格")
    private Double price;

    @ApiModelProperty(value = "预计揽收时间，时间戳，ms")
    private Long pickupPromiseTime;

    @ApiModelProperty(value = "预计送达时间；时间戳")
    private Long deliveryPromiseTime;

    @ApiModelProperty(value = "100（已接单）；390（已下发）；420（已揽收）；430（运输中）；440（派送中）；480（已拦截）；" +
            "500（异常终止）；510（妥投）；530（拒收）；690（已取消）")
    private String status;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "扩展字段")
    private String extendInfo;

    @TableField(value = "create_by", fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建者")
    private String createBy;

    @TableField(value = "create_time", fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "更新者")
    private String updateBy;

    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
}
